package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.GradedAlarm;
import com.ruoyi.system.domain.dto.GradedAlarmDto;

/**
 * 分级报警设置Service接口
 * 
 * @author ruoyi
 * @date 2024-11-18
 */
public interface IGradedAlarmService 
{
    /**
     * 查询分级报警设置
     * 
     * @param gradedAlarmId 分级报警设置主键
     * @return 分级报警设置
     */
    public GradedAlarm selectGradedAlarmByGradedAlarmId(String gradedAlarmId);

    /**
     * 查询分级报警设置列表
     * 
     * @param gradedAlarm 分级报警设置
     * @return 分级报警设置集合
     */
    public List<GradedAlarm> selectGradedAlarmList(GradedAlarm gradedAlarm);

    /**
     * 新增分级报警设置
     * 
     * @param gradedAlarm 分级报警设置
     * @return 结果
     */
    public int insertGradedAlarm(GradedAlarm gradedAlarm);

    /**
     * 修改分级报警设置
     * 
     * @param gradedAlarm 分级报警设置
     * @return 结果
     */
    public int updateGradedAlarm(GradedAlarm gradedAlarm);

    /**
     * 批量删除分级报警设置
     * 
     * @param gradedAlarmIds 需要删除的分级报警设置主键集合
     * @return 结果
     */
    public int deleteGradedAlarmByGradedAlarmIds(String[] gradedAlarmIds);

    /**
     * 删除分级报警设置信息
     * 
     * @param gradedAlarmId 分级报警设置主键
     * @return 结果
     */
    public int deleteGradedAlarmByGradedAlarmId(String gradedAlarmId);

    /**
     * 报警分级处理
     *
     * @return 结果
     */
    public GradedAlarmDto handleAlarmSpecial(String baseStation,String sensorType,String monitoringThreshold,String dataType);
    public GradedAlarmDto handleAlarmNormal(String baseStation,String sensorType,String monitoringThreshold);

    /**
     * 通过报警实时数据查询报警分级数据
     */
    public GradedAlarmDto selectGradedAlarmDto(String baseStation,String sensorType,String alarmLevelName);
    /**
     * 查询分级报警设置列表Dto
     */
    public List<GradedAlarmDto> selectGradedAlarmListDto(GradedAlarm gradedAlarm);
}
